// 将一个多维数组  转换成一维数组
// 我们先用一种递归的方式实现
// 这里回顾下递归的两个基本条件
// 1. 一个简单的基本案例-一个不需要使用递归就能产生答案的终止方案
// 2. 一组规则，就是递推关系，可以将所有情况拆成基本案例

let arr = [1, [1, 2], [3, 4], [7, [1, 2]], 1]

const flatten = arr => {
  debugger
  let result = []
  let length = arr.length
  for (let index = 0; index < length; index++) { // 这里没有用forEach 是因为for循环的效率更高
    let isArray = Array.isArray(arr[index])
    if (isArray) {
      result = result.concat(flatten(arr[index]))
    } else {
      result.push(arr[index])
    }
  }
  return result
}

console.log(flatten(arr))